// 防抖 在一段时间内，不论触发多少期回调，都已最后一次为准


// 实现的话可以使用定时器执行函数，新调用发生时如果旧调用没有执行就清除之前的定时器。
function debounce (fn, delay) {
  let timer
  return (...args) => {
    // 判断定时器是否存在, 如果存在清空， 生成新的定时器
    if(timer) {
      clearTimeout(timer)
    }
    // 生成新得定时器
    timer = setTimeout(() => {
      fn.apply(this, args)
    }, delay)
  }
}

module.exports = debounce

